﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace BoletoElectronicoDesktop.AbmRol
{
    public partial class FormAltaRol : Form
    {
        public FormAltaRol()
        {
            InitializeComponent();
        }

        private void FormAltaRol_Load(object sender, EventArgs e)
        {
            //inicio con la ventana maximizada
            this.WindowState = FormWindowState.Maximized;

            //cargo las funcionalidades en el comboBox
            DataTable Dt = RolDAO.ObtenerFuncionalidades();
            cbFuncionalidad.DataSource = Dt;
            cbFuncionalidad.DisplayMember = "FuncionalidadNombre";
            cbFuncionalidad.ValueMember = "FuncionalidadId";

            lbFuncionalidades.DisplayMember = "FuncionalidadNombre";
            lbFuncionalidades.ValueMember = "FuncionalidadId";
            
        }

        private void btnLimpiar_Click(object sender, EventArgs e)
        {
            //pongo todos los textbox en blanco.
            txtNombre.Text = "";
            lbFuncionalidades.Items.Clear();
            


        }

        private void btnAgregar_Click(object sender, EventArgs e)
        {

            if (lbFuncionalidades.Items.Contains(cbFuncionalidad.SelectedItem) ) 
            { 
                MessageBox.Show("Ya agregó esa funcionalidad", "Información.");
            }
            else lbFuncionalidades.Items.Add(cbFuncionalidad.SelectedItem);
            
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            string rol = txtNombre.Text;
            //verifico que el usuario haya ingresado un nombre de rol y alguna funcionalidad
            if ((rol == "") || (lbFuncionalidades.Items.Count == 0))
            {
                MessageBox.Show("Complete los campos obligatorios");
            }
            else // hay un nombre de rol y alguna funcionalidad
            {
                //valido que el rol no exista
                int existe = RolDAO.ExisteRol(rol);
                if (existe != 0) //el rol existe
                {
                    MessageBox.Show("Ya existe un rol con ese nombre");
                }
                else //el nombre de rol no existe
                {
                    //agrego el rol a la tabla Rol
                    RolDAO.AgregarRol(rol);

                    //obtengo el ID del Rol recién creado
                    int idRol = RolDAO.ObtenerId(rol);

                  

                    //inserto 1*1 las funcionalidades de ese rol en la tabla FuncionalidadXRol

                    foreach (DataRowView FilaSeleccionados in lbFuncionalidades.Items)
                    {
                        RolDAO.InsertarFuncionalidadPorRol(idRol.ToString(), FilaSeleccionados.Row[0].ToString());
                    }
                    MessageBox.Show("Alta realizada con éxito");
                    txtNombre.Text = "";
                    lbFuncionalidades.Items.Clear();
                }//fin else nombre de rol no existe
            }//fin else campos completos rol  y funcionalidad
 

        } //fin botón guardar

        private void txtNombre_KeyPress(object sender, KeyPressEventArgs e)
        {
            Funciones.validarTexto(e);
        }
        
     }//fin clase

     

        
 } //fin namespace

